package service

import (
	"time"

	"gitee.com/liumou_site/PasswordReset/user"
	"gitee.com/liumou_site/logger"
)

// Runner 服务运行器
type Runner struct {
	hour int
}

// NewRunner 创建新的服务运行器
func NewRunner(hour int) *Runner {
	return &Runner{hour: hour}
}

// Start 启动服务
func (r *Runner) Start(serviceName string) {
	// 初始化服务

	// 创建用户管理器
	manager, err := user.NewManager()
	if err != nil {
		logger.Error("创建用户管理器失败: %v", err)
		return
	}

	logger.Info("密码重置服务启动成功，共管理 %d 个用户", manager.GetUserCount())

	// 无限循环执行密码重置
	for {
		manager.ProcessAllUsers()
		logger.Info("完成一轮密码重置，等待 %d 小时后再次执行", r.hour)
		time.Sleep(time.Duration(r.hour) * time.Hour)
	}
}
